snippet #       可执行标识
	#!/usr/bin/env elixir
	${0}
snippet /       单行注释
	# ${0}
snippet //      文档注释
	"""${0}"""
snippet -       分隔注释
	#----------------------------------------------------------------------${0}
# 包含指令
snippet rq      引入模块，使用该模块下的函数需要用 MyModule.my_func 的形式
	require ${0}
snippet im      导入模块，使用该模块下的函数可直接用 my_func 的形式
	import ${0}
snippet imo     只导入模块下的指定方法
	import ${1}, only: [${0}]
snippet ime     导入模块下除指定方法以外的其他方法
	import ${1}, except: [${0}]
snippet al      给模块设置别名 [没指定别名时，自动设置别名为模块名的最后一部分]
	alias ${1}, as: ${0}
snippet u       使用模块，需要在模块下实现 __using__ 宏
	use ${0}
# 文档、钩子
snippet mdoc    模块文档
	@moduledoc ${0}
snippet tdoc    类型文档
	@typedoc ${0}
snippet doc     普通文档
	@doc ${0}
snippet beh     行为
	@behaviour ${0}
snippet spe     规格
	@spec ${0}
snippet bfc     编译前的钩子
	@before_compile ${0}
snippet afc     编译后的钩子
	@after_compile ${0}
snippet exr     指定外部资源
	@external_resource ${0}
# 模块、类
snippet dm      定义模块
	defmodule ${1:mo_name} do

	  ${0}

	end
snippet da      定义共用宏
	defmacro ${1:ma_name} do
	  ${0}
	end
snippet dap     定义私有宏
	defmacrop ${1:ma_name} do
	  ${0}
	end
snippet du      定义 __using__ 宏
	defmacro __using__${1} do
	  ${0}
	end
snippet dbh     定义 __behaviour__ 宏
	defmacro __behaviour__${1} do
	  ${0}
	end
snippet dbc     定义 __before_compile__ 宏
	defmacro __before_compile__${1} do
	  ${0}
	end
snippet dac     定义 __after_compile__ 宏
	defmacro __after_compile__${1} do
	  ${0}
	end
snippet dpr     定义协议
	defprotocol ${1:pro_name} do
	  ${0}
	end
snippet dim     实现协议
	defimpl ${1} do
	  ${0}
	end
snippet dre     实现记录
	defrecord ${1} do
	  ${0}
	end
snippet ds      定义结构体
	defstruct ${0}
snippet de      定义异常
	defexception ${0}
# 方法
snippet d       定义公用函数 [单行形式]
	def ${1}, do: ${0}
snippet d.      定义公用函数 [多行形式]
	def ${1} do
	  ${0}
	end
snippet dd      定义没有函数体的公用函数
	def ${0}
snippet dp      定义私有函数 [单行形式]
	defp ${1}, do: ${0}
snippet dp.     定义私有函数 [多行形式]
	defp ${1} do
	  ${0}
	end
snippet dw      定义带卫兵的函数 [单行形式]
	def ${1} when ${2}, do: ${0}
snippet dw.     定义带卫兵的函数 [多行形式]
	def ${1} when ${2} do
	  ${0}
	end
snippet dpw     定义带卫兵的私有函数 [单行形式]
	defp ${1} when ${2}, do: ${0}
snippet dpw.    定义带卫兵的私有函数 [多行形式]
	defp ${1} when ${2} do
	  ${0}
	end
snippet ff      匿名函数 [单行形式]
	fn${1} -> ${0} end
snippet ff.     匿名函数 [多行形式]
	fn
	  ${1} -> ${0}
	end
# 流程控制
snippet do      do
	do
	  ${0}
	end
snippet re      receive
	receive do
	  ${0}
	end
snippet cs      case [匹配单一变量]
	case ${1} do
	  ${0}
	end
snippet co      cond [不限制匹配变量]
	cond do
	  ${0}
	end
snippet if      if
	if ${1} do
	  ${0}
	end
snippet ul      unless
	unless ${0}
snippet el      else
	else
	  ${0}
snippet w       when
	when ${0}
snippet fo      for
	for ${1} do
	  ${0}
	end
snippet qu      quote
	quote ${0}
snippet qu.     quote
	quote${1} do
	  ${0}
	end
snippet uq      unquote
	unquote(${0})
# 异常处理
snippet try     异常处理代码块
	try do
	  ${0}
	end
snippet ra      抛出异常
	raise ${0}
snippet thr     抛出异常
	throw ${0}
snippet res     捕获异常
	rescue${0}
snippet cat     捕获异常
	catch${0}
snippet ext     终止进程
	exit ${0}
# 消息
snippet sen     发送消息
	send ${0}
snippet rec     接收消息
	receive do
	  ${0}
	end
# 单个关键字
snippet se      self
	self${0}
snippet af      after
	after${0}
# 内置函数
snippet len     长度
	length ${0}
snippet bsz     字节数
	byte_size ${0}
snippet sp      派生进程
	spawn ${0}
snippet spl     链接进程
	spawn_link${0}
snippet stl     启动进程
	start_link${0}
snippet ap      附加
	append ${0}
snippet p       输出
	IO.write ${0}
snippet pl      输出并换行
	IO.puts ${0}
snippet pp      输出复杂数据类型
	IO.inspect ${0}
snippet ins     将任意数据类型转换为可读形式
	inspect ${0}
# 特殊标识
snippet _m     __MODULE__
	__MODULE__${0}
snippet _c     __CALLER__
	__CALLER__${0}
snippet _d     __DIR__
	__DIR__${0}
snippet _f     __FILE__
	__FILE__${0}
# 其他
snippet m       map
	%${1}{${0}}
snippet s       ~s{ .. } [二进制字符串]
	~s{${0}}
snippet c       ~c{ .. } [字符列表]
	~c{${0}}
snippet r       ~r{ .. } [正则表达式]
	~r{${0}}
snippet x       ~x{ .. }
	~${1}{${0}}
snippet {       #{ .. }
	#{${0}
snippet ,       <>
	<${0}>
snippet ,,      << .. >>
	<<${0}>>
snippet \       \\
	\\\\ ${0}
snippet |       |>
	|> ${0}
snippet <       <-
	<- ${0}
snippet >       ->
	-> ${0}
snippet .       =>
	=> ${0}
